package scala

import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.linalg.distributed.{CoordinateMatrix, MatrixEntry}
import org.apache.spark.{SparkConf, SparkContext}

/**
  * 项目名称:spark-learn<br>
  * 包名:scala<br>
  * 用于:spark-learn<br>
  * 创建时间:2019年03月16日<br>
  * 更新时间:2019年03月16日<br>
  *
  * @author :lds（创建人）<br>
  * @version :v1.0（版本号）<br>
  * @since jdk1.8
  */
object TestCoordinateRowMatrix {

  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
    conf.setMaster("local").setAppName("textFile")
    val sc = new SparkContext(conf)
    val rdd = sc.textFile("conf\\loadLibSVMFile.txt")
      .map(_.split(" ")
        .map(_.toDouble))
      .map(line => Vectors.dense(line)).map(vue => (vue(0).toLong,vue(1).toLong,vue(2)))
      .map(vue2 => new MatrixEntry(vue2._1,vue2._2,vue2._3))
    val crm = new CoordinateMatrix(rdd)
    println(crm.entries.foreach(println))
  }

}
